查看原文
其他

基于树莓派和硬盘柜搭建一个几十TB的家用NAS

SunnyZhang 数据存储张 2024-05-06


在动不动一个照片10多MB,一个视频几个GB的时代,手机空间很快就被用光了。个人电脑上一两个TB的存储空间似乎也不怎么够用。虽然云存储可以存储一些数据,但是每月都要交租子,让人着实有点心疼。

今天,我们就介绍一下如何用树莓派和一个硬盘柜搭建一个有几十TB容量的家用存储系统,我们称为家用NAS。当然,如果您银子足够,而且对技术没什么兴趣,可以直接买一个成熟的NAS产品,网上很多介绍,本文不再赘述。整个硬件架构是比较简单的,一个树莓派主板加上一个硬盘柜,两者用USB线相连接。

硬件是不是非常简单,搭建完成后,软件使用上还是非常友好的,一点也不山寨。我们先看看搭建成功后的管理界面截图吧。是不看上去还是很专业的!    

本文是写给那些爱折腾的人,而且想省点银子的同学。首先我们需要一个树莓派,树莓派就是一个微型电脑,CPU连散热风扇都没有的电脑,如下图是其裸照。当然,我们也可以买一个外壳或者散热风扇,这样他就更新一个电脑了。

大家可以观察一下这个微型电脑,CPU和内存自然不可获取。另外,他还具备常见的网口、USB口和HDMI接口。因此,通过USB接口可以为其扩展存储,通过网口可以访问其中的存储资源。

         

 

   

接下来我们需要扩展存储容量了,可以购买一个USB3.0接口的硬盘柜。比如下面这款5盘位的硬盘柜。通过USB接口就可以连接到树莓派上,在树莓派上可以看到有5块硬盘。如果购买5块8TB的硬盘,那么就有40TB的存储容量。这个容量可以存几万部电影、几十万首歌曲或者几百万张照片。所以,足够一般家庭用上几十年了吧。

需要注意的是,硬盘柜分为有无RAID两个版本。其中有RAID版本要贵一些,无RAID版本要便宜一些,大家可以按需选购。即使是无RAID版本也没关系,我们后面将介绍如何借助树莓派操作系统中的软件实现RAID功能。

有些人可能不知道RAID为何物,我们这里简要介绍一下。RAID是一种保证数据可靠性的技术,他通过数据冗余技术来保证即使有硬盘故障的情况下仍然不丢失数据。RAID有很多种级别,最简单的RAID1采用两块以上的硬盘保存相同的数据,这样如果一块硬盘故障,通过其它硬盘仍然可以访问数据。另外最常用的RAID5和RAID6可以通过校验数据保证数据的可靠性。关于RAID的详细介绍可以阅读本号的其它文章,本文不再赘述。

有了硬件后,我们就可以准备软件了。首先需要给树莓派安装一个操作系统,可以安装树莓派官方操作系统,或者自己安装一个Ubuntu操作系统。甚至我们也可以安装一个开源的NAS操作系统,比如TrueNAS、RockStor或者OMV(OpenMediaVault)等。我们这里以树莓派官方操作系统(大家可以自行搜索下载)为例进行介绍。

树莓派的操作系统是安装在一个SD卡上的,因此我们首先需要下载一个烧录工具,这里选择树莓派官方的烧录工具(也可以用etcher)。软件启动后的界面如下图所示(不同版本界面略有不同,请注意版本号),可以看到有3个按钮,分别是操作系统镜像按钮,SD卡选择按钮和烧录按钮。         

 

具体操作很简单,这里不再赘述。完成选择后先别急着操作,为了后续操作方面,我们需要配置一下远程登录。具体方法是点击下图中的小齿轮。

此时会弹出一个对话框,我们可以通过这个对话框进行一个高级设置。我们这里主要是启用远程登录,也就是SSH服务。         

 

这个时候我们就可以烧录操作系统了。完成烧录后可以将SD插入树莓派的插槽中,然后启动树莓派。等操作系统启动后,我们就可以通过SSH工具登录树莓派内部了。

接下来我们就可以安装NAS服务了。有两种方式安装NAS服务,一种是通过命令行的方式安装NFS和Samba服务,然后导出相关服务。另外一种是安装打包的NAS服务软件,例如OpenMediaVault。为了降低门槛,我们以OpenMediaVault为例进行介绍。可以通过下面命令启动安装过程:

sudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

回车后在shell上就可以看到整个安装过程,安装过程时间可能比较长。最后安装成功的输出如下所示,可以看出我们一共安装了92个软件包。    

安装成功后可以通过Web登录系统了,下图是配置好的仪表盘页面,如果是新系统可能略有不同。主要功能集中在左侧的导航栏中,我们主要关注跟存储相关的内容,涉及导航栏中的存储器和服务两个选项卡中的内容。    

         

 

帐号:admin 密码:openmediavault

 

点击“存储器”可以打开该选项卡,可以看到其中包含磁盘、SMART、软RAID、文件系统和共享文件系统等子选项卡。当点击“磁盘”时可以看到该系统中的所有硬盘,我们这里一共有6块硬盘,具体如下图所示。    

另外一个比较重要的是“服务”选项卡中的内容,点击后可以看到内容如下。可以看到常见的服务如NFS、SMB和SSH等。其中NFS和SMB是用于计算机之间共享文件的服务,也就是所谓的NAS服务。

         

 

了解了上述功能后,我们接下来介绍一下如何进行配置。主要是针对上述两个方面,一个是配置存储资源,另外一个是配置服务相关的内容,使得其他计算机(手机)可以访问存储资源。    

对于存储资源,最底层的是单块的硬盘,然后通过软RAID可以将多块硬盘打包成一个虚拟的硬盘,这个虚拟的硬盘通过RAID算法可以保证数据的可靠性(前文已述相关内容)。另外,必需在这个虚拟硬盘上创建文件系统才能被NFS或者SMB服务导出。首先我们需要基于硬盘构建RAID,点击“软RAID”标签后可以看到一个创建按钮(加号),然后会出现一个向导,我们只需要按照向导操作即可。如下所示,这里RAID有很多类型,可以按需选择。

         

 

需要注意的是,完成向导后配置并没有生效,在操作的过程中会出现下图所示的警告信息,我们需要单击右侧的对号配置才能生效。后面所有配置都是这样的,这一点一定要注意。

 

完成RAID创建后,我们需要在这个RAID上创建文件系统。点击“文件系统”标签可以看到相关的功能按钮如下图所示。点击“加号”可以出现一个创建文件系统的向导,按照向导操作即可,比较简单,本文不再赘述。    

完成文件系统的创建后,我们就可以点击“共享文件夹”来创建共享的文件夹资源。本质上来说,该向导就是在前一步文件系统的根目录中创建一个子目录,并设置权限。

经过上述几步后,我们创建的可以导出的存储资源。接下来需要启动服务,以NFS服务为例,包含两个设置项,分别为“设置”和“共享”。其中“设置”用于配置启动的NFS服务类型。“共享”则是用于将前面创建共享目录导出,如果大家熟悉Linux的NFS的话,其实这一步就是在/etc/exports文件中添加一个配置项。

         

 

   

上图是“共享”配置的向导,其中需要说明的是需要填写客户端的IP地址,也就是允许哪些客户端可以访问当前的NFS服务。完成配置后,我们就可以通过另外一个客户端来访问了。这个客户端可以是另外一台电脑或者手机。

相关阅读


数万客户端NFS服务的困境,聊聊自动挂载技术 为什么都说NFS读写性能差,如何进行优化?  NFS协议端到端实例解析之写数据流程  NFS协议端到端实例解析之文件锁流程    Linux NFSD软件架构与代码解析  Ceph的文件系统架构及使用实战   分布式存储的软件架构与案例解析 什么是文件系统,以Linux中的Ext4为例细聊一下  对象存储,从单机到分布式的演进  什么是云存储,从对象存储说起?

         

 

   

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存